package loja.validacao;

import java.util.Map;
import loja.gui.utils.Cpf;
import loja.gui.utils.Email;

/**
 *
 * @author Rodrigo
 */
public class ClienteValidadorEmEdicao extends AbstractValidador {

    public boolean validar(Map atributos) {
        if (validarCliente(atributos.get("cliente"))
                && validarEndereco(atributos.get("endereco"))
                && validarNascimento(atributos.get("nascimento"))
                && validarCpf(atributos.get("cpf"))
                && validarEmail(atributos.get("email"))) {
            return true;
        } else {
            return false;
        }
    }

    private boolean validarCliente(Object cliente) {
        boolean eValido = true;

        if (cliente == null || cliente.toString().trim().equals("")) {
            eValido = false;
            erros.add("Cliente não pode ser vazio.");
        }

        if (cliente.toString().length() > 50) {
            eValido = false;
            erros.add("Cliente deve ter tamanho máximo de 50 caracteres.");
        }

        return eValido;
    }

    private boolean validarEndereco(Object endereco) {
        boolean eValido = true;

        if (endereco == null || endereco.toString().trim().equals("")) {
            eValido = false;
            erros.add("Endereco não pode ser vazio.");
        }

        if (endereco.toString().length() > 50) {
            eValido = false;
            erros.add("Endereco deve ter tamanho máximo de 50 caracteres.");
        }

        return eValido;
    }

    private boolean validarNascimento(Object nascimento) {
        boolean eValido = true;

        if (nascimento == null || nascimento.toString().trim().equals("")) {
            eValido = false;
            erros.add("Data de Nascimento não pode ser vazio.");
        }

        if (nascimento.toString().length() > 50) {
            eValido = false;
            erros.add("Data de Nascimento deve ter tamanho máximo de 12 caracteres.");
        }

        return eValido;
    }

    private boolean validarEmail(Object email) {
        boolean eValido = true;
        Email email1 = new Email();

        if (email == null || email.toString().trim().equals("")) {
            eValido = false;
            erros.add("Email não pode ser vazio.");
        }

        if (email.toString().length() > 50) {
            eValido = false;
            erros.add("Email deve ter tamanho máximo de 150 caracteres.");
        }

        if (!email1.validEmail(email.toString())) {
            eValido = false;
            erros.add("Email Invalido. Exemplo de email valido: exemplo@loja.com");

        }


        return eValido;
    }

    private boolean validarCpf(Object valor) {
        boolean eValido = true;
        Cpf cpf = new Cpf();



        if (valor == null) {
            erros.add("CPF não pode ser vazio.");
            eValido = false;
        }

        if (!cpf.validarCpf(valor.toString())) {
            erros.add("CPF Invalido");
            eValido = false;
        }

        return eValido;

    }
}





    

